package com.lcc.lynx.base.system.pojo;

import lombok.Data;
import com.lcc.lynx.jdbc.pojo.TablePojo;
import com.lcc.lynx.jdbc.annotation.Table;
import com.lcc.lynx.jdbc.annotation.TableId;
import com.lcc.lynx.jdbc.annotation.FieldLabel;
import java.util.Date;
import com.lcc.lynx.jdbc.annotation.InsertRequired;
import java.util.List;

/** 
 * 用户管理实体
 * @auth lcc
 * @date 2025-07-29
 */
@Data
@Table("sys_user")
public class SysUser extends TablePojo {

	/** 用户Id */
	@TableId
	@FieldLabel("用户Id")
	private Long userId;

	/** 用户名 */
	@InsertRequired
	@FieldLabel("用户名")
	private String username;

	/** 账号 */
	@InsertRequired
	@FieldLabel("账号")
	private String loginId;

	/** 密码 */
	@InsertRequired
	@FieldLabel("密码")
	private String password;

	/** 性别 */
	@InsertRequired
	@FieldLabel("性别")
	private Short sex;

	/** 手机号 */
	@InsertRequired
	@FieldLabel("手机号")
	private String phone;

	/** 邮箱 */
	@FieldLabel("邮箱")
	private String email;

	/** 身份证 */
	@FieldLabel("身份证")
	private String idCard;

	/** 状态 */
	@FieldLabel("状态")
	private Short state;

	/** 上次密码 */
	@FieldLabel("上次密码")
	private String lastPassword;

	/** 上次登录时间 */
	@FieldLabel("上次登录时间")
	private Date lastLoginTime;

	/** 创建时间 */
	@FieldLabel("创建时间")
	private Date createTime;

	/** 更新时间 */
	@FieldLabel("更新时间")
	private Date updateTime;

	/** 头像 */
	@FieldLabel("头像")
	private String pictureUrl;

	/** 部门id */
	@FieldLabel("部门id")
	private Long deptId;

	public void setUserIdInList(List<Long> userIdList){ put("userIdInList", userIdList); }
	public void setUsernameLike(String usernameLike){ put("usernameLike", usernameLike); }
	public void setUsernameLikeL(String usernameLikeL){ put("usernameLikeL", usernameLikeL); }
	public void setLoginIdLike(String loginIdLike){ put("loginIdLike", loginIdLike); }
	public void setLoginIdLikeL(String loginIdLikeL){ put("loginIdLikeL", loginIdLikeL); }
	public void setSexInList(List<Short> sexList){ put("sexInList", sexList); }
	public void setStateInList(List<Short> stateList){ put("stateInList", stateList); }
	public void setCreateTimeStart(String createTimeStart){ put("createTimeStart", createTimeStart); }
	public void setCreateTimeEnd(String createTimeEnd){ put("createTimeEnd", createTimeEnd); }
	public void setUpdateTimeStart(String updateTimeStart){ put("updateTimeStart", updateTimeStart); }
	public void setUpdateTimeEnd(String updateTimeEnd){ put("updateTimeEnd", updateTimeEnd); }
}